package ControlLayer;
import ModelLayer.*;
import java.util.ArrayList;
//model layer package has to be imported
/**
 * Controller class for the DVD collection
 * 
 * @author (kbh) 
 * @version (2005.03.31)
 * @revised version English (Ab)
 * (FEN): 2006.03.21: Some changes to the architecture in order to assure layering
 *                    and loose coupling
 */
public class DVDCtr
{
    //declare instance variables to reference containers
    //passed as arguments from the main class
    private DVDContainer dvdListing;
   

    /**
     * Constructor for objects of class DVDCtr
     */
    public DVDCtr()//DVD container is to be passed as parameter from the main controller
    {
        //set up references to containers    
        dvdListing = new DVDContainer();
    }
    
    //Dummy implementation: after implementing the model layer 
    //objects of class DVD are to be returned, not String
    public DVD findDVD(String title)
    {
        //this method is to search the container for a DVD
        //with an id-number equal to the parameter no
        //when the dvd is found, the method is to call print-methods in the TUI layer
       
       return dvdListing.findDVD(title); 
    }
    
    public DVD findDVDid(long id)
    {
        return dvdListing.findDVDid(id);
    }
    
    //Dummy implementation: more parameters are probaly to added
    public void addDVD(int id, String title, String director, int year)
    {       
          //this method constructs a new dvd object 
          //and stores it in the container
          dvdListing.dvds.add(new DVD(id, title, director, year));
    }
    
    public void deleteDVD(long id)
    {
        //search for the dvd and delete the object from the container
       DVD dvd = findDVDid(id);
       if(dvd !=null)
       dvdListing.deleteDVD(id);
    }
       
    public void addCopy(long id)
       {
           //create a copy of the specified dvd and add it to the dvd
       }
    
   public ArrayList<DVD> dvdsNo()
       {
           return dvdListing.dvdList();
       }
    
   public ArrayList listAllDvds()
       {
           //returns a list of all dvds and their associated copies
           return null;
       }
    
}
